package com.goxueche.lib_core.ui.mvp.view;

import android.content.Context;

import com.goxueche.lib_core.utils.NiceLogUtil;
import com.goxueche.lib_core.widgets.Alert;
import com.trello.rxlifecycle4.LifecycleTransformer;

/**
 * @author 哈兹米
 * @date 2019/12/12 9:31
 */
public interface IBaseView {
    /**
     * 用来 绑定view 生命周期，解决rxjava内存泄露
     *
     * @param <T> T
     * @return ObservableTransformer
     */
    <T> LifecycleTransformer<T> getLifecycleTransformer();

    /**
     * 提供上下文对象
     *
     * @return context
     */
    Context getContext();

    /**
     * 展示等待的动画
     */
    void showLoading();

    /**
     * 取消等待的动画
     */
    void dismissLoading();

    /**
     * 展示展示toast消息
     *
     * @param errMsg 消息内容
     */
    default void toast(String errMsg) {
        Alert.toast(errMsg);
    }

    /**
     * 打印消息
     *
     * @param msg Object msg
     */
    default void log(Object msg) {
        NiceLogUtil.d(msg.toString());
    }
}
